/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tecprog.service;

import java.io.Serializable;
import java.util.Iterator;
import tecprog.model.Administrador;
import tecprog.model.AdministradorJpaController;
import tecprog.model.exceptions.NonexistentEntityException;
import java.util.List;
/**
 *
 * @author Igor
 * Classe para serviços na tabela administrador
 */
public class TipoAdministradorService implements Serializable{
    
    /**
     * Declarando uma variavel do tipo AdministradorjpaController para manipulaçao do banco de dados.
     */
    private AdministradorJpaController jpa;
    
    /**
     * Metodo que instancia um novo objeto controlador.
     */
    public TipoAdministradorService() {
        jpa = new AdministradorJpaController();
    }
    
    /**
     * Método para salvamento das informações obtidas nas telas para o banco de dados na tabela administrador.
     * @param administrador
     * @throws NonexistentEntityException
     * @throws Exception 
     */
    public void salvar(Administrador administrador) throws NonexistentEntityException, Exception {
        if (administrador.getMatriculaaplicador() != null)
            jpa.edit(administrador);
        else
            jpa.create(administrador);        
    }
    
    /**
     * Método para exclusao de dados presentes na tabela do banco de dados do administrador.
     * @param administrador
     * @throws NonexistentEntityException 
     */
    public void excluir(Administrador administrador) throws NonexistentEntityException {
        jpa.destroy(administrador.getMatriculaaplicador());     
    }
    
    /**
     * Método que carrega todas as informaçoes presentes na tabela adminsitrador do banco de dados.
     * @return 
     */
    public List<Administrador> recarregar() {
        return jpa.findAdministradorEntities();
    }
    
    /**
     * Método que verifica se determinado administrador se encontra presente no banco dedados.
     * @param objeto
     * @return 
     */
    public Administrador verificarBanco(Administrador objeto){
         List lista = jpa.findAdministradorEntities();
         Iterator i = lista.iterator();
         boolean achei = false;
         while(!achei && i.hasNext()){
             Administrador d = (Administrador) i.next();
             if(objeto.getMatriculaaplicador().equals(d.getMatriculaaplicador()))
                 return d;
         }
    return null;
         }
    
    /**
     * Método que verifica se o loguin e senha informados nas telas correspondem a um administrador cacdastrado no banco de dados
     * @param matriculaaplicador
     * @param senha
     * @return 
     */
    public String efetuarLogin(String matriculaaplicador, String senha){
        Administrador ad = new Administrador();
        ad.setMatriculaaplicador(matriculaaplicador);
        ad.setSenha(senha);
        Administrador registrado = verificarBanco(ad);
        if(registrado!=null && registrado.getSenha().equals(senha))
            return "logado";
        return "falha";
    }
    
}
